package com.huawei.esdk.tp.device.terminal;

import java.util.List;
import java.util.Map;

import com.huawei.esdk.platform.common.SDKErrorCode;
import com.huawei.esdk.platform.common.SDKResult;
import com.huawei.esdk.platform.exception.ProtocolAdapterException;
import com.huawei.esdk.tp.domain.model.Site;
import com.huawei.esdk.tp.domain.model.SiteInConference;
import com.huawei.esdk.tp.domain.model.bean.CameraControl;
import com.huawei.esdk.tp.domain.model.bean.ControlPwd;
import com.huawei.esdk.tp.domain.model.bean.VideoSourcesInfo;

public interface TerminalServiceItf
{
    SDKErrorCode ctrlCameraOpeate(CameraControl ctrlCameraOpeateBean);

    SDKErrorCode startSendAuxStream();

    SDKErrorCode stopSendAuxStream();
    
    SDKErrorCode requestChair();
    
    SDKErrorCode releaseChair();
    
    SDKResult<ControlPwd> getConfCtrlPsd();
    
    SDKResult<SiteInConference> queryBroadInfo();
    
    SDKErrorCode startRecordBroad();
    
    SDKErrorCode stopRecordBroad();
    
    SDKErrorCode startDirectBroad();

    SDKErrorCode stopDirectBroad();

    SDKResult<List<VideoSourcesInfo>> queryVideoOutSrcState();

    SDKResult<Integer> isConnectAuxSourceAPI() throws ProtocolAdapterException;

    SDKResult<Integer> isSendAuxStreamAPI() throws ProtocolAdapterException;

    SDKResult<Integer> isReceiveRemAuxStrmAPI() throws ProtocolAdapterException;

    SDKErrorCode setLocalMainAux(List<Integer> localMainSrc, Integer localAuxSrc);

    SDKResult<Map<Integer, String>> getMainVideoSourceList();

    SDKErrorCode changeVideoOutSrc(Integer hdOut, Integer videoSrc);

    SDKResult<Map<Integer, String>> getSubVideoSourceList()
            throws ProtocolAdapterException;

    SDKResult<Site> querySiteVersionInfo() throws ProtocolAdapterException;
    
    SDKResult<SiteInConference> isSupportReocrd();
}
